//  这个模块专门定义请求参数的结构体
package models

// 定义帖子列表排序的常量，按照时间和分数
const (
	OrderTime  = "time"
	OrderScore = "score"
)

// 注册
type ParamSignUp struct {
	// required 每个字段不能为 该类型0值，就是不存在。
	Username string `json:"username" binding:"required"`
	Password string `json:"password" binding:"required,min=6"`
	// eqfield=Password 指定 RePassword 字段 必须和 PassWord字段相等
	RePassword string `json:"confirm_password" binding:"required,eqfield=Password"`
	RealName   string `json:"real_name" binding:"required"`
	Mobile     string `json:"mobile" binding:"required,len=11"`
	Address    string `json:"address" binding:"required"`
}

// 登录
type ParamsLogin struct {
	Username string `json:"username" binding:"required"`
	Password string `json:"password" binding:"required"`
}

// 投票
type ParamsVoteData struct {
	PostID string `json:"post_id" binding:"required"` // 帖子id
	// 赞成票（1）还是反对票（-1）取消投票（0）
	// one of: https://pkg.go.dev/gopkg.in/go-playground/validator.v9#hdr-One_Of
	Direction int8 `json:"direction,string" binding:"required,oneof=1 0 -1"`
}

// redis 获取列子 id列表的方法
type ParamPostList struct {
	Page  int64  `json:"page" form:"page"`
	Size  int64  `json:"size" form:"size"`
	Order string `json:"order" form:"order"`
	// 按照社区分类
	CommunityID int64 `json:"community_id" form:"community_id"`
}
